﻿using UnityEngine;
using System.Collections;
using UnityEngine.UI;
/*技能冷却
 * 使用方法：
 * 1.将技能图标复制，并将复制后的图标改成灰色 作为技能冷却图标，
 * 并在Find下修改为您自定义的技能冷却图标的名字
 * 并将该Ui Image属性中的ImageType改为Filled
 * 2.在Fill Method和Fill Origin中设置冷却显示效果
 * 3.给该图标 添加Button组件（UGUI），在OnClick注册点击事件让其触发脚本中的OnClick事件
 * 4.在Update中设置技能快捷键
 * 如果报错请查看是否引入命名空间 UnityEngine.Ui
 * 作者：王 辉 QQ522915201
 * 脚本最后修改时间：2016年10月27日
 * 
 */

public class HpChange : MonoBehaviour {
    public float coldTime = 2.0f;//设置减少血量的时间
    private float timer = 0;//时间归零
    private GameObject  textObj;//找到用来保存血量信息的Text对象
    private bool isStartTimer = false;//通过这个开始开关来控制 血条是否改变
    // Use this for initialization

    private Vector2 ScreenPont;//这个二维向量用来保存这个UI在屏幕上的位置
    void Awake()
    {
        //找到这个游戏对象，并在游戏刚加载时候 把他关闭
        textObj = GameObject.Find("HpTextChange");
    }
 
	void Start () {
        //将游戏对象设置为关闭
         textObj.SetActive(false);
    }

    // Update is called once per frame
    void Update () {
        if (isStartTimer)//如果打开了触发器
        {
            timer += Time.deltaTime;//时间进行累加

            textObj.SetActive(true);//将这个 减少的血条设置为可见
            ChangeHp(-50);//并传入其屏幕坐标，减少血量
            if (timer >=coldTime )//如果超过冷却时间
            {
                textObj.SetActive(false);//超过时间 将血条关闭
                timer = 0;//时间归零
                isStartTimer = false;//布尔开关归零
            }
        }
        //在此处设置 触发血条的条件 
        if (Input.GetMouseButtonDown (0))
        {
            ScreenPont = Input.mousePosition;
            //按下鼠标左键 打开触发开发，开始执行减血
            OnClick();
        }
	
	}
    public void OnClick()
    {
        isStartTimer = true;
    }
    public void ChangeHp(float _Hp)
    {
        Debug.Log("显示血量");
        textObj.gameObject.transform.position = ScreenPont  ;
        textObj.GetComponent<Text>().text = "血量减少" + _Hp;
    }
}
